﻿using System;
using System.Collections.Generic;

namespace Bulb.Core.Services.DataStore
{
    public interface IRepository<T> : IDisposable where T : class 
    {
        IList<T> All();
        T Latest(Func<T, object> func);
        T Get(int id);
        void Add(T item);
        void Delete(T item);
        void Update(T item);
        List<T> Filter(Func<T, bool> func);
        int Count();
    }
}